package singleton;

/**
 * @Author 孔德成
 * @Slogan 致敬大师，致敬未来的你
 * @desc 单例模式：保证该类在内存中只有一个实例
 * <p>
 * 懒汉式
 * lazy loading 需要用的时候，才初始化
 * 虽然达到了按需初始化的目的，但却带来线程不安全的问题
 */
public class Demo3 {
    private static Demo3 INSTANCE;

    private Demo3() {
    }

    public static Demo3 getInstance() {
        if (INSTANCE == null) {
            // 模拟线程不安全场景
            try {
                Thread.sleep(1);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            INSTANCE = new Demo3();
        }
        return INSTANCE;
    }

    public void work() {
        System.out.println("致敬大师，致敬未来的你");
    }
}
